package vista;
import java.awt.Dialog.ModalityType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.BevelBorder;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import util.Utilidades;

import modelo.Equipo;
import modelo.Status;
import modelo.Sucursal;
import modelo.dao.Servidor;

/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class DlgSeleccionarEquipo extends javax.swing.JDialog {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JTable tbEquipos;
	private JScrollPane jScrollPane1;
	private JButton btAgregar;
	private JPanel jPanel1;
	private JButton btAceptar;
	private JButton btSalir;
	private JTextField txtSucursal;
	private JLabel lblSucursal;
	private ArrayList<Equipo> equipos;
	private AbstractTableModel tbModelEquipos;
	private Sucursal sucursal=null;
	private Equipo equipo=null;

	/**
	* Auto-generated main method to display this JDialog
	*/
	/*public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JFrame frame = new JFrame();
				DlgSeleccionarEquipo inst = new DlgSeleccionarEquipo(frame);
				inst.setVisible(true);
			}
		});
	}*/
	
	public DlgSeleccionarEquipo(JDialog dialog,Sucursal suc) {
		super(dialog);
		sucursal=suc;
		initGUI();
	}
	
	private void initGUI() {
		try {
			{
				getContentPane().setLayout(null);
				this.setTitle("Seleccionar Equipos");
				{
					lblSucursal = new JLabel();
					getContentPane().add(lblSucursal);
					lblSucursal.setText("Sucursal:");
					lblSucursal.setBounds(39, 24, 68, 14);
					lblSucursal.setFont(new java.awt.Font("Tahoma",1,11));
				}
				{
					txtSucursal = new JTextField();
					getContentPane().add(txtSucursal);
					txtSucursal.setBounds(100, 17, 347, 28);
					txtSucursal.setEnabled(false);
				}
				{
					btSalir = new JButton();
					getContentPane().add(btSalir);
					btSalir.setText("Salir");
					btSalir.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Salir.gif")));
					btSalir.setHorizontalTextPosition(JButton.CENTER);
					btSalir.setVerticalTextPosition(JButton.BOTTOM);
					btSalir.setBounds(362, 363, 79, 40);
				}
				{
					btAceptar = new JButton();
					getContentPane().add(btAceptar);
					btAceptar.setText("Aceptar");
					btAceptar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Aceptar.png")));
					btAceptar.setHorizontalTextPosition(JButton.CENTER);
					btAceptar.setVerticalTextPosition(JButton.BOTTOM);
					btAceptar.setBounds(256, 363, 79, 40);
				}
				{
					jPanel1 = new JPanel();
					getContentPane().add(jPanel1);
					jPanel1.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
					jPanel1.setBounds(55, 76, 361, 241);
					jPanel1.setLayout(null);
					{
						btAgregar = new JButton();
						jPanel1.add(btAgregar);
						btAgregar.setText("Agregar");
						btAgregar.setIcon(new ImageIcon(getClass().getClassLoader().getResource("iconos/Agregar.png")));
						btAgregar.setBounds(229, 187, 104, 28);
						
					}
					{
						jScrollPane1 = new JScrollPane();
						jPanel1.add(jScrollPane1);
						jScrollPane1.setBounds(27, 24, 311, 144);
						{
							equipos = Servidor.equipos().consultarEquiposPorSucursal(sucursal.getCodigo());
							
							tbModelEquipos = new AbstractTableModel() {
								@Override
								public Object getValueAt(int fil, int col) {
									switch (col) {
									case 0: return  equipos.get(fil).getDescripcion();
									case 1: return  equipos.get(fil).getModelo().getNombre();
									}
									
									return null;
								}
								
								@Override
								public int getRowCount() {
									return equipos.size();
								}
								
								@Override
								public String getColumnName(int col) {
									switch (col) {
									case 0: return "Descripcion";
									case 1: return "Modelo";
									}
									
									return null;
								}
								@Override
								public int getColumnCount() {
									return 2;
								}
							};
							tbEquipos = new JTable();
							jScrollPane1.setViewportView(tbEquipos);
							tbEquipos.setModel(tbModelEquipos);
							tbEquipos.setBounds(100, 114, 293, 129);
						}
					}
				}
			}
			this.setSize(468, 496);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	DlgSeleccionarEquipo dsequ=this;
	   public Equipo mostrar(JDialog dialog) {
			
			setLocationRelativeTo(null);
			txtSucursal.setText(sucursal.getDescripcion());
			
			btAgregar.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					DlgEquipo dequ=new DlgEquipo(dsequ);
					dequ.mostrar(dsequ,sucursal);
					equipos = Servidor.equipos().consultarEquiposPorSucursal(sucursal.getCodigo());
					tbModelEquipos.fireTableDataChanged();
				}
			});
			
			btAceptar.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					if(Utilidades.seleccion(tbEquipos, dsequ, "Equipo"))
					{ 	equipo=equipos.get(dsequ.tbEquipos.getSelectedRow());
						dsequ.dispose();
					}
				}
			});
			
			btSalir.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					dsequ.dispose();
				}
			});
			
			this.setModalityType(ModalityType.APPLICATION_MODAL);
			setVisible(true);
			return equipo;
			
		}

	
}
